import CryptoJS from 'crypto-js'
/**
 * DES加密工具 - ECB模式
 * @module Encryption
 */
// DES密钥
const KEY = 'g0A9CwgT3yo='
/**
 * 使用DES-ECB模式加密密码
 * @param {string} password - 需要加密的密码字符串
 * @returns {string} - 返回Base64编码的加密字符串
 */
export function encryptByDES(password) {
  // 将密钥转换为WordArray对象
  const keyHex = CryptoJS.enc.Base64.parse(KEY)

  // 使用DES加密，ECB模式，Pkcs7填充
  const encrypted = CryptoJS.DES.encrypt(password, keyHex, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7,
  })
  // 返回Base64格式的加密结果
  return encrypted.toString()
}

/**
 * 使用DES-ECB模式解密数据
 * @param {string} encryptedData - Base64编码的加密字符串
 * @returns {string} - 返回解密后的原始数据
 */
export function decryptByDES(encryptedData) {
  // 将密钥转换为WordArray对象
  const keyHex = CryptoJS.enc.Base64.parse(KEY)

  // 使用DES解密，ECB模式，Pkcs7填充
  const decrypted = CryptoJS.DES.decrypt(encryptedData, keyHex, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7,
  })

  // 将解密结果转为UTF-8字符串
  return decrypted.toString(CryptoJS.enc.Utf8)
}
